#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    int times;
    cin >> times;
    vector<long long> nums;
    for (int i = 0; i < times; i++) {
        long long curr; cin >> curr;
        nums.push_back(curr);
    }
    sort(nums.begin(), nums.end());
    for (int i = nums.size() - 1; i >= 2; i--) {
        if (nums[i] < nums[i - 1] + nums[i - 2]) {
            cout << nums[i - 2] << " " << nums[i - 1] << " " << nums[i];
            return 0;
        }
        // 可以发现，如果{i, i - 1, i - 2}不满足三角形，则{i, i - n, i - m},
        // n > 1，m > 2一定也不满足三角形
        // 由此排除大部分情况，并总是选取可能是最大的组合
        // 本题和LeetCode-976题一致：https://leetcode.cn/problems/largest-perimeter-triangle/description/
    }
    cout << -1;
    return 0;
}